opentelemetry-exporter-otlp-common: add shared package for common OTLP utilities#5252
opentelemetry-exporter-otlp-common: add shared package for common OTLP utilities#5252herin049 wants to merge 16 commits into
Conversation
|
This PR has been automatically marked as stale because it has not had any activity for 14 days. It will be closed if no further activity occurs within 14 days of this comment. |
44a17f2 to
5cb779f
Compare
There was a problem hiding this comment.
Pull request overview
This PR introduces a new opentelemetry-exporter-otlp-common package intended to centralize shared OTLP exporter utilities (notably OTLP/HTTP retry/compression logic and metrics aggregation/temporality helpers), and wires it into the monorepo build/test/CI configuration.
Changes:
- Added the new
opentelemetry-exporter-otlp-commondistribution with internal OTLP/HTTP client + aggregation utilities and accompanying tests. - Integrated the new package into workspace membership, packaging lists, tox envs, and GitHub Actions test/lint jobs.
- Added pinned test requirement sets (oldest/latest) for the new package and updated the changelog entry.
Reviewed changes
Copilot reviewed 19 out of 21 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
uv.lock |
Adds the new package as a workspace member and records dependency lock updates. |
tox.ini |
Adds test/lint envs and dependency mappings for the new package. |
pyproject.toml |
Includes/excludes the new package paths for repo-level tooling. |
eachdist.ini |
Adds the new distribution to per-dist packaging configuration. |
.github/workflows/test.yml |
Adds CI test jobs for the new package across Python versions/platforms. |
.github/workflows/lint.yml |
Adds CI lint job for the new package. |
.changelog/5252.added |
Documents the addition of the new shared OTLP utilities package. |
exporter/opentelemetry-exporter-otlp-common/pyproject.toml |
Defines the new distribution metadata, deps, and build configuration. |
exporter/opentelemetry-exporter-otlp-common/README.rst |
Documents installation and basic usage for the new OTLP/HTTP utilities. |
exporter/opentelemetry-exporter-otlp-common/LICENSE |
Adds the Apache 2.0 license text for the new package directory. |
exporter/opentelemetry-exporter-otlp-common/src/.../_http.py |
Implements OTLPHTTPClient (compression + retry/backoff + transport integration). |
exporter/opentelemetry-exporter-otlp-common/src/.../_aggregation.py |
Implements env-driven metrics temporality + histogram aggregation selection helpers. |
exporter/opentelemetry-exporter-otlp-common/src/.../__init__.py |
Initializes the new package module. |
exporter/opentelemetry-exporter-otlp-common/src/.../version/__init__.py |
Introduces version metadata for the new distribution. |
exporter/opentelemetry-exporter-otlp-common/src/.../py.typed |
Marks the package as typed for type checkers. |
exporter/opentelemetry-exporter-otlp-common/tests/test_http_client.py |
Adds unit tests for retry, timeout, compression, and shutdown behaviors. |
exporter/opentelemetry-exporter-otlp-common/tests/test_aggregation.py |
Adds unit tests for env-driven temporality/aggregation selection. |
exporter/opentelemetry-exporter-otlp-common/tests/__init__.py |
Test package marker for the new package. |
exporter/opentelemetry-exporter-otlp-common/test-requirements.in |
Defines test dependency inputs for the new package. |
exporter/opentelemetry-exporter-otlp-common/test-requirements.oldest.txt |
Pinned “oldest” resolved test dependency set for CI/tox. |
exporter/opentelemetry-exporter-otlp-common/test-requirements.latest.txt |
Pinned “latest” resolved test dependency set for CI/tox. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
aabmass
left a comment
There was a problem hiding this comment.
LGTM, would appreciate your approval @DylanRussell
| # pylint: disable-next=broad-exception-caught | ||
| except Exception: |
There was a problem hiding this comment.
why try/except here ?
There was a problem hiding this comment.
Just in case the retry-after value is invalid and/or result.headers() throws due to invalid/malformed response headers.
Description
This PR adds a new
opentelemetry-exporter-otlp-commonpackage to provide common utilities for OTLP Protobuf/JSON/gRPC exporters.Fixes: #5339
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Does This PR Require a Contrib Repo Change?
Checklist: